package com.sgj.handler;

import com.sgj.enums.PayTypeEnum;

import java.util.HashMap;
import java.util.Map;
import java.util.Objects;

/**
 * 工厂设计模式
 * @author 沈国纪
 * @date 2022/1/3 15:41
 */
public class Factory {
    private static Map<PayTypeEnum, AbstractHandler> strategyMap = new HashMap<>();

    public static AbstractHandler getInvokeStrategy(PayTypeEnum payTypeEnum) {
        return strategyMap.get(payTypeEnum);
    }

    public static void register(PayTypeEnum payTypeEnum, AbstractHandler handler) {
        if (Objects.isNull(payTypeEnum) || Objects.isNull(handler)) {
            return;
        }
        strategyMap.put(payTypeEnum, handler);
    }
}